//url参数解析&&转化库  https://github.com/ljharb/qs
//封装默认配置
import qs from 'qs';
const _parse = qs.parse.bind(qs);
const _stringify = qs.stringify.bind(qs);
const _defalutParseConfig = {
  plainObjects : true,//默认false,ture为创建一个不继承Object.prototype的纯对象
  allowPrototypes : false,//默认false,true为允许覆盖Object的原型链上同名方法or变量
  depth : 50,//解析对象深度,默认5
  parameterLimit : 1000,//最多解析的参数个数,默认1000
  delimiter : '&',//变量分割符可以是正则
  allowDots : false//默认false,true为允许'.'点号分割变量
};
const _defalutStringifyConfig = {
  encode : true,//默认true,对字符串进行url编码
  delimiter : '&',//变量分割符
  skipNulls : true,//true为跳过null值,默认false
  serializeDate : Date => parseInt(Date.getTime()/1000)//值为Date对象时格式化的函数
};
const replaceRegex = /^\s*\?/;
qs._=null;
qs.parse = (str='', userOpt={},...other) => _parse(str.replace(replaceRegex,''),Object.assign({},_defalutParseConfig,userOpt),...other);
qs.stringify = (obj={}, userOpt={},...other) => _stringify(obj,Object.assign({},_defalutParseConfig,userOpt),...other);
if (typeof window==='object') {
  window.QS = window.qs = qs;
}

export default qs;
